package zw_801_900.zw_883_三维形体投影面积;

class Solution {

    public static void main(String[] args) {
        int[][] g = {{1,2},{3,4}};
        int area = projectionArea(g);
        System.out.println(area);
    }

    /**
     * 根据题意进行模拟即可，使用三个变量分别统计三视图的阴影面积：
     * ans1：统计俯视图的面积，共有 n∗n 个位置需要被统计，当任意格子 g[i][j]>0，阴影面积加一；
     * ans2：统计左视图的面积，共有 n 行需要被统计，每一行对 ans2 的贡献为该行的最大高度；
     * ans3：统计主视图的面积，共有 n 列需要被统计，每一列对 ans3 的贡献为该列的最大高度。
     *
     * @param g
     * @return
     */
    public static int projectionArea(int[][] g) {
        int ans1 = 0, ans2 = 0, ans3 = 0;
        int n = g.length;
        for (int i = 0; i < n; i++) {
            int a = 0, b = 0;
            for (int j = 0; j < n; j++) {
                if (g[i][j] > 0) ans1++;
                a = Math.max(a, g[i][j]);
                b = Math.max(b, g[j][i]);
            }
            ans2 += a;
            ans3 += b;
        }
        return ans1 + ans2 + ans3;
    }
}
